﻿/**
 * jQuery twiWindow plugin
 * @Author：feitianxinhong http://xuzhihong1987.blog.163.com/  
 * @Version：1.0.0
 * @CreateDate：2015-02-28
 * @Example: Visit http://blog.163.com/twi_fly  
 * @Copyright ©2010-2015 Tyingsoft 踏影软件开发工作室 之 Twilight/Twifly开源系列. 转载请保留本行注明.   
 * @License：Twi Framework of Tyingsoft is licensed under the MIT license.  
 * @Description：基于jquery+Bootstrap的窗体控件
 * @Require:  
 *
 * ------------------------------------------------------------------
 * 编号    版本号      作者              修改日期        修改内容
 * ------------------------------------------------------------------
 *  1      1.0.0       feitianxinhong    2015-02-28      创建文件
 *  2      1.0.1       feitianxinhong    2015-03-12      修正位置bugger、z-index层显示问题
 *  3      1.0.2       feitianxinhong    2016-01-28      修改样式，让其支持滚动条
 * ------------------------------------------------------------------
 */


(function ($) {
    var global = this;
    if (typeof Twi === 'undefined') {
        global.Twi = {
            emptyFn: function () { }
        };
    }
    Twi.global = global;

    /**
     * 随机数(返回几位随机数)
     * @len:随机数长度，default:4
     */
    function getRandom(len) {
        len = len || 4;
        return Math.floor(Math.pow(10, len) * Math.random());
    }

    Twi.Window =Twi.Win = function (config) {
        var me = this;

        me.VERSION = '1.0.2';  //版本号 

        /**
        *默认配置项 
        */
        me.defaults = {
            title:'这里是标题',
            html: '这里是内容',            
            renderTo: 'body',
            contentEl: null,
            width: 300,
            height:230,
            id:"TwiWin"+getRandom()
        };

        me.config = $.extend({}, me.defaults, config);
        me.id = me.config.id;
    };
                    
    /*
     *  显示窗口
     */
    Twi.Win.prototype.show = function () {
        var me = this;
        
        var html = '<div class="twiWinContainer" id="' + me.config.id + '">';
        html += '<div class="twiWinBg"></div>';
        html += '<div class="twiWinContent">';
        html += '<div class="twiWinClose">';
        html += '<span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span>';
        html += '</div>';

        var isShowTitle = true; //是否显示标题
        if (me.config.title.length > 0) {
            html += '<div class="twiWinTitle">' + me.config.title + '</div>';
        }
        else {
            isShowTitle = false;
        }

        html += '<div class="twiWinBody">';
        html += me.config.html;
        html += '</div>';
        //html += '<div class="twiWinBbar">';
        //html += '<button class="btn btn-danger twiWinBbarClose">关闭</button>';
        //html += '</div>';
        html += '</div>';
        html += '</div>';

        $(me.config.renderTo).append(html);

        //加载现有HTML为内容
        if (me.config.contentEl && $(me.config.contentEl).length > 0) {
            $('#' + me.config.id).find('.twiWinBody').empty().append($(me.config.contentEl).html());
        }

        //样式
        $('#' + me.config.id).find('.twiWinContent').css({
            "width": me.config.width,
            "height": me.config.height,
            "margin-top": 0 - me.config.height / 2,
            "margin-left": 0 - me.config.width / 2
        });

        var titleHeight = $('#' + me.config.id).find('.twiWinTitle').height() || 0;
        titleHeight = titleHeight == 0 ? 0 : titleHeight + 15; //边距
        var contentHeight = me.config.height - titleHeight;
        //Body样式
        $('#' + me.config.id).find('.twiWinBody').css({
            "height": contentHeight
        });


        


        //注册关闭事件
        $('#' + me.config.id).find('.twiWinClose').click(function () {
            me.close();
        });
    } //end show

    /**
     * 关闭方法
     */
    Twi.Win.prototype.close = function () {
        $('#' + this.config.id).remove();
    }

    /**
     * 获取id
     */
    Twi.Win.prototype.getId = function () {
        return this.config.id;
    }


})(window.jQuery);